#include<iostream>
#include<string>
#include<fstream>
#include"bundle.h"
using namespace std;
int main(int argc , char *argv[]){
    if(argc <3){
        cout <<"argv[1]是压缩包名称"<<endl;
        cout<<"argv[2]是解压后的文件名称"<<endl;
        return -1;
    }
    string ifilename = argv[1] ;//获取压缩包名称
    string ofilename = argv[2];//获取解压后的文件名

    ifstream ifs;
    ifs.open(ifilename ,std::ios::binary);//打开压缩包
    ifs.seekg(0 , ios::end);//跳转到文件末尾
    size_t fsize = ifs.tellg();//获取文件大小
    ifs.seekg(0 ,ios::beg);//跳转到起始位置

    std::string body;
    body.resize(fsize);
    ifs.read(&body[0],fsize);//将压缩包数据传入body
    ifs.close();

    string unpacked = bundle::unpack(body);//进行解压缩,数据存入unpacked

    ofstream ofs ;
    ofs.open(ofilename, std::ios::binary);
    ofs.write(&unpacked[0] , unpacked.size());//数据写入解压文件
    ofs.close();



    return 0;
}